﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 原型模式
{
    /// <summary>
    /// System名称空间中提供了ICloneable接口，唯一的一个方法clone()，只要实现这个接口就可以完成原型模式 。。
    /// 克隆，等于不用重新初始化对象，而是动态地获得对象运行时的状态。。
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Resume a = new Resume("大鸟");
            a.SetPersonalInfo("男", "29");
            a.SetWorkExperience("1998-2000", "广东公司");

            Resume b =(Resume )a.Clone();   //复制的全是值类型数据，没问题
            //若有引用类型，则只复制引用，而不复制对象。原始对象及其副本引用同一对象。此为浅复制
            b.SetPersonalInfo("男", "24");

            a.Display();
            b.Display();
            Console.ReadLine();
        }
    }

   
}
